package webservice;

import org.orm.PersistentException;
import org.orm.PersistentTransaction;

import validaciones.CrearSecuencia;

public class ServicioRegistroUsuario {

	private static final int ROW_COUNT = 100;
	private validaciones.CrearSecuencia cs=new CrearSecuencia();
	
	public 	boolean consultaUsuario(domain.UsuarioVO usuarioVO){
		orm.Usuario[] ormUsuarios;
		try {
			ormUsuarios = orm.UsuarioDAO.listUsuarioByQuery("USSER='"+usuarioVO.getUsser()+"'", null);
			int length = Math.min(ormUsuarios.length, ROW_COUNT);
			if(length==0)return true;
			else return false;
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
		
		
	}

	public String registroUsuario(domain.UsuarioVO usuarioVO){
		PersistentTransaction t;
		 try {
			t = orm.TrabajoAplicado1PersistentManager.instance().getSession().beginTransaction();
			try {
				orm.Usuario lormUsuario = orm.UsuarioDAO.createUsuario();
				orm.Secuencia lormSecuencia = orm.SecuenciaDAO.createSecuencia();
				
				if(consultaUsuario(usuarioVO)==true){
					
					lormUsuario.setUsser(usuarioVO.getUsser());
					lormUsuario.setPass(usuarioVO.getPass());
					orm.UsuarioDAO.save(lormUsuario);
					lormSecuencia.setCadena(cs.md5Cadena(usuarioVO.getUsser()));
					lormSecuencia.setTiempo(cs.tiempo());
					lormSecuencia.setFecha_ingreso(cs.fechaIngreso());
					lormSecuencia.setUsuariousuario(lormUsuario);
					orm.SecuenciaDAO.save(lormSecuencia);
					t.commit();
					return "Registro Existoso";
				}else{
					return "Usuario Existente";
				}
			} catch (Exception e) {
				// TODO: handle exception
				t.rollback();
				System.out.println("rollback");
				return "ROLLLLLLLLBACK";
			}
			
		} catch (PersistentException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return null;
	}
}
